﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BrokerBase.Lib.Policy
{
    /// <summary>
    /// 
    /// </summary>
    public interface ISchemePeriodActing
    {

        ISchemeActing SchemeActing { get; }

        /// <summary>
        /// 当前期间
        /// </summary>
        int Period { get;}
        /// <summary>
        /// 当前年
        /// </summary>
        int Age { get; }
        /// <summary>
        /// 投保人年龄
        /// </summary>
        int HolderAge { get; }
        /// <summary>
        /// 年度
        /// </summary>
        int Year { get; }

        double Amount { get;}

        double Fee { get; }

        double TotalFee { get; }

        double Value { get; }

        double TotalValue { get; }

        /// <summary>
        /// 被保人状态
        /// </summary>
        IList<string> InsurantStates { get; set; }

        IList<string> HolderStates { get; set; }
        /// <summary>
        /// 主险的期间价值
        /// </summary>
        IPolicyPeriodActing BasicPolicyPeriodActing { get; }

        IPolicyPeriodActing[] PolicyPeriodActings { get; }

        IPolicyPeriodActing GetPolicyPeriodActiing(string name);

        IPolicyPeriodActing GetBasicPolicyPeriodActing();

        string State { get; }

        void Calc();

        void AddInsurantStates(string state);

        void AddHolderStates(string state);

    }
}
